Typically, a network generally refers to a communication system that allows users to access resources on other computers and to exchange data and messages with other users. Particularly, a network allows users to share resources on their own systems and with other network users and to access information on centrally located systems or systems that are located at remote offices. Networks generally also provide connections to the Internet or other networks of other organizations. Further, network connections allow users to operate from their home, their office, or at other locations.
More particularly, a network is a data communications system that links two or more devices (e.g. computers, peripheral devices, etc.). Generally, a network consists of a cable that attaches to network interface cards (NICs) of devices to allow communication between the devices. Further, typically, users interact with network-enabled software applications to make a network request such as to get a file from another computer or to print a document on a network printer. The application communicates with network software and the network software interacts with the network hardware. The network hardware is responsible for transmitting information to other devices attached to network.
A local area network (LAN) is a network that is located in a relatively small area such as a department, a building, or a home. Technically, a LAN consists of a shared medium to which devices attach to communicate with one another using broadcast methods. With broadcasting, any device on the LAN can transmit a message that all the other devices on the LAN can listen to.
Over the last decade or so, for many businesses, it has become a necessity for employees to share data over an enterprise network featuring one or more LANs. To improve efficiency, enhancements have been added to LANs such as remote wireless access. This enhancement provides an important extension in forming a wireless local area network (WLAN).
Typically, wireless networks support communications between a station or server and wireless clients, and among the various wireless clients themselves, utilizing access points (APs). In general, each AP operates as a relay station by supporting communications between the wireless clients themselves and between the wireless clients and the server. Further, data transmitters within a wireless network, such as data transmitters operating using an Institute of Electrical and Electronics Engineers (IEEE) 802.11 wireless protocol, can transmit data at different rates to different clients. Oftentimes, the data transmitters (e.g. including an antenna), are included as part of an access point.
Further, home networks including wireless home-networks, similar to WLAN's, have become increasingly popular. For example, in wireless home-networks, a home media server streams data, such as video and audio data, to client devices throughout the home. Better Quality of Service (QoS), and better bandwidth, allows the server to stream high fidelity content, such as movies, television, graphics, multi-media, games, web pages, etc., to client devices throughout the house. Hence, it is important to optimize QoS and network bandwidth, which is particularly important for unreliable and lower-bandwidth networks, such as wireless networks. WLAN's and wireless home-networks, as well as other types of wireless networks, will be generally referred to as wireless networks.
Within a network, whether it be a wired network or a wireless network, in order to provide reliable service, it is oftentimes necessary to constrain network resource usage for individual nodes or devices of the network. For example, if node A and node B are using a network for transmission, node A and node B may share the available bandwidth equally and may each be limited to no more than 50% of the bandwidth available on the network, respectively, or node A and node B may share the available bandwidth as 20% and 80%, respectively. Obviously, many other combinations are possible.
However, often, many issues arise as to how bandwidth between competing nodes should be allocated in the network and further as to how to allocate bandwidth when new nodes wish to be admitted into the network. All of these factors can lead to congestion problems in the network. Moreover, these issues become even more complex when network bandwidth changes dynamically, such as in wireless networks.
For example, previous attempts to avoid congestion in a network, such as those employed by transmission control protocol (TCP), involve measuring round-trip times of packets and using acknowledgment packets to determine and avoid congestion. Unfortunately, TCP is often not adequate for delivering delay-sensitive real-time data such as live audio and video from a content server—especially in a wireless environment. Further, other common types of protocols, such as user datagram protocol (UDP) and even real time transport protocol (RTP) (which is particularly directed towards delivering delay-sensitive real-time data such as live audio and video from a content server) may not adequately address network bandwidth adjustments or congestion avoidance—especially in a wireless environment. Moreover, these previous attempts do not take into account the utility of the bandwidth required for the different applications utilizing the network.